/* 页面请求参数 */
export interface ParamsType {
  pageIndex?: number;
  pageSize?: number;
  keywords?: string;
  month?: string;
}

/* 考勤查询参数 */
export interface CheckInQueryForm extends ParamsType {
  dateRange?: string[];
  groupId?: number;
  projectId?: number;
  personId?: number;
  status?: number;
  corpId?: number;
  entryExitMark?: number;
  startDate?: string;
  endDate?: string;
  personIds?: number[];
}

export interface CheckInDetailPersonListForm {
  /// <summary>
  /// 人员Id
  /// </summary>
  personId?: number;
  /// <summary>
  /// 项目名称
  /// </summary>
  projectName?: string;
  memberId?: number;
  /// <summary>
  /// 人员姓名
  /// </summary>
  personName?: string;
  /// <summary>
  /// 班组名称
  /// </summary>
  groupName?: string;
  corpName?: string;
  /// <summary>
  /// 所属公司类型
  /// </summary>
  corpTypeName?: string;
  /// <summary>
  /// 工种
  /// </summary>
  workTypeName?: string;
  /// <summary>
  /// 本月应考勤天数
  /// </summary>
  monthCheckinAddDay?: number;
  /// <summary>
  /// 本月实际出勤天数
  /// </summary>
  monthCheckinDay?: number;
  /// <summary>
  /// 缺勤天数
  /// </summary>
  absenceDay?: number;
  /// <summary>
  /// 到岗率
  /// </summary>
  presenceRate?: string;
  /// <summary>
  /// 缺勤率
  /// </summary>
  absenceRate?: string;
}

/* 新增考勤 */
export interface checkInDetailEditForm {
  /**
   * 主键
   */
  id?: number;

  /**
   * 进出标识
   */
  entryExitMark?: number;

  /**
   * 考勤月份
   */
  month?: string;

  /**
   * 考勤日期
   */
  checkinDate?: Date;

  /**
   * 进场人员id
   */
  memberId?: number;

  /**
   * 进出场标识
   */
  entryExitMarkName?: string;

  /**
   * 人员姓名
   */
  personName?: string;
}

/**
 * 考勤明细列表
 */
export interface AttendanceListForm {
  /**
   * 主键
   */
  id?: number;
  memberId?: number;
  /**
   * 人员名称
   */
  personName?: string;

  /**
   * 考勤状态
   */
  statusName?: string;

  /**
   * 进出标识
   */
  entryExitMarkName?: string;

  /**
   * 数据来源
   */
  dataSourcesName?: string;

  /**
   * 班组名称
   */
  groupName?: string;

  /**
   * 开始用工日期
   */
  startDate?: Date;

  /**
   * 结束用工日期
   */
  endDate?: Date;

  /**
   * 创建日期
   */
  createTime?: Date;

  /**
   * 考勤日期
   */
  checkinDate?: Date;

  corpName?: string;
  corpTypeName?: string;
  workTypeName?: string;
  projectName?: string;
}

/**
 * 项目考勤统计查询Form
 */
export interface ProjectCheckinCountQuery {
  /**
   * 考勤月份
   */
  month?: string;
  /**
   * 班组
   */
  groupIds?: string;

  selectedGroupIds?: number[];

  /**
   * 项目Id
   */
  projectId?: number;
}

/**
 * 项目考勤统计
 */
export interface ProjectCheckinCount {
  /**
   * 项目总人数
   */
  projectPersonCount: number;
  /**
   * 出勤总人数
   */
  checkinPersonCoun: number;
  /**
   * 缺勤总人数
   */
  absenceFromDutyPersonCount: number;
  /**
   * 班组数
   */
  groupCount: number;
  /**
   * 出勤率
   */
  attendance: number;
  /**
   * 缺勤率
   */
  absenceRate: number;
}

/**
 * 项目考勤分析
 */
export interface ProjectGroupCheckinAnalysis {
  /**
   * 班组名称
   */
  groupNames: string[];
  /**
   * 出勤人数
   */
  checkinPersonCount: number[];
  /**
   * 缺勤人数
   */
  absenceFromDutyPersonCount: number[];
  /**
   * 到岗率
   */
  onDutyRate: number[];
  /**
   * 缺勤率
   */
  absenceFromDutyRate: number[];
}
